package ar.com.tallerdos.smartdinner.sync;

import java.util.List;

import android.util.Log;
import ar.com.tallerdos.smartdinner.activity.ProductosLista;
import ar.com.tallerdos.smartdinner.business.ProductoBusiness;
import ar.com.tallerdos.smartdinner.model.Producto;
import ar.com.tallerdos.smartdinner.util.ProductoStockData;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

public class ProductosStock extends Tarea {
    
    private static final String PRODUCTOS_STOCK_SERVICE = "productosStock.php";
    
    private Integer idSubrubro;
    private ProductosLista productosLista;
    private List<ProductoStockData> stocks;
    
    public ProductosStock(Integer idSubrubro, ProductosLista productosLista) {
	this.idSubrubro = idSubrubro;
	this.productosLista = productosLista;
    }

    @Override
    public Integer realizarTarea() {
	Log.i("log_tag", "Verificando stock de productos");
	String response = llamarWebService(SERVER_URL + "/" + 
		PRODUCTOS_STOCK_SERVICE + "?" +
		"subrubro_id=" + idSubrubro);

    	if (response != null && response.length() > 0) {
    	    Gson gson = new GsonBuilder().create();
    	    stocks = gson.fromJson(response, new TypeToken<List<ProductoStockData>>() {}.getType());

	}

	Log.i("log_tag", "Terminando verificacion stock de productos");
	return null;
    }

    @Override
    public void onPostExecute() {
	super.onPostExecute();
	if (stocks != null) {
	    for (ProductoStockData stockData : stocks) {
		Producto producto = ProductoBusiness.findById(stockData.getId());
		if (producto != null) {
		    producto.setStock(stockData.getStock());
		}
	    }
	}
	this.productosLista.actualizarLista();
    }
}
